package com.ruoyi.demo.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 拍卖小程序用户对象 auction_user
 * 
 * @author metaee
 * @date 2025-02-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("拍卖小程序用户对象")
public class AuctionUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户ID */
    private Long userId;

    /** 微信openid */
    @ApiModelProperty("微信openid")
    @Excel(name = "微信openid")
    private String openid;

    /** 微信unionid */
    @ApiModelProperty("微信unionid")
    @Excel(name = "微信unionid")
    private String unionid;

    /** 用户昵称 */
    @ApiModelProperty("用户昵称")
    @Excel(name = "用户昵称")
    private String nickName;

    /** 真实姓名 */
    @ApiModelProperty("真实姓名")
    @Excel(name = "真实姓名")
    private String realName;

    /** 头像地址 */
    @ApiModelProperty("头像地址")
    @Excel(name = "头像地址")
    private String avatar;

    /** 手机号码 */
    @ApiModelProperty("手机号码")
    @Excel(name = "手机号码")
    private String phone;

    /** 邮箱 */
    @ApiModelProperty("邮箱")
    @Excel(name = "邮箱")
    private String email;

    /** 身份证号 */
    @ApiModelProperty("身份证号")
    @Excel(name = "身份证号")
    private String idCard;

    /** 性别（0未知 1男 2女） */
    @ApiModelProperty("性别")
    @Excel(name = "性别", readConverterExp = "0=未知,1=男,2=女")
    private String gender;

    /** 生日 */
    @ApiModelProperty("生日")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 账户余额 */
    @ApiModelProperty("账户余额")
    @Excel(name = "账户余额")
    private BigDecimal balance;

    /** 信用分 */
    @ApiModelProperty("信用分")
    @Excel(name = "信用分")
    private Long creditScore;

    /** 用户等级 */
    @ApiModelProperty("用户等级")
    @Excel(name = "用户等级")
    private Long userLevel;

    /** 账号状态（0正常 1禁用） */
    @ApiModelProperty("账号状态")
    @Excel(name = "账号状态", readConverterExp = "0=正常,1=禁用")
    private String status;

    /** 是否实名认证（0否 1是） */
    @ApiModelProperty("是否实名认证")
    @Excel(name = "是否实名认证", readConverterExp = "0=否,1=是")
    private String isVerified;

    /** 最后登录IP */
    @ApiModelProperty("最后登录IP")
    @Excel(name = "最后登录IP")
    private String lastLoginIp;

    /** 最后登录时间 */
    @ApiModelProperty("最后登录时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLoginTime;

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setOpenid(String openid) 
    {
        this.openid = openid;
    }

    public String getOpenid() 
    {
        return openid;
    }
    public void setUnionid(String unionid) 
    {
        this.unionid = unionid;
    }

    public String getUnionid() 
    {
        return unionid;
    }
    public void setNickName(String nickName) 
    {
        this.nickName = nickName;
    }

    public String getNickName() 
    {
        return nickName;
    }
    public void setRealName(String realName) 
    {
        this.realName = realName;
    }

    public String getRealName() 
    {
        return realName;
    }
    public void setAvatar(String avatar) 
    {
        this.avatar = avatar;
    }

    public String getAvatar() 
    {
        return avatar;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setIdCard(String idCard) 
    {
        this.idCard = idCard;
    }

    public String getIdCard() 
    {
        return idCard;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }
    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }
    public void setBalance(BigDecimal balance) 
    {
        this.balance = balance;
    }

    public BigDecimal getBalance() 
    {
        return balance;
    }
    public void setCreditScore(Long creditScore) 
    {
        this.creditScore = creditScore;
    }

    public Long getCreditScore() 
    {
        return creditScore;
    }
    public void setUserLevel(Long userLevel) 
    {
        this.userLevel = userLevel;
    }

    public Long getUserLevel() 
    {
        return userLevel;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setIsVerified(String isVerified) 
    {
        this.isVerified = isVerified;
    }

    public String getIsVerified() 
    {
        return isVerified;
    }
    public void setLastLoginIp(String lastLoginIp) 
    {
        this.lastLoginIp = lastLoginIp;
    }

    public String getLastLoginIp() 
    {
        return lastLoginIp;
    }
    public void setLastLoginTime(Date lastLoginTime) 
    {
        this.lastLoginTime = lastLoginTime;
    }

    public Date getLastLoginTime() 
    {
        return lastLoginTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("openid", getOpenid())
            .append("unionid", getUnionid())
            .append("nickName", getNickName())
            .append("realName", getRealName())
            .append("avatar", getAvatar())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("idCard", getIdCard())
            .append("gender", getGender())
            .append("birthday", getBirthday())
            .append("balance", getBalance())
            .append("creditScore", getCreditScore())
            .append("userLevel", getUserLevel())
            .append("status", getStatus())
            .append("isVerified", getIsVerified())
            .append("lastLoginIp", getLastLoginIp())
            .append("lastLoginTime", getLastLoginTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
